//
//  NSData+Extension.swift
//  SinaWeiBo
//
//  Created by 毛强 on 16/1/29.
//  Copyright © 2016年 itheima. All rights reserved.
//

import Foundation

extension NSDate {
    class func sinaData(string: String) ->NSDate? {
        let dt = MQDateFormatter.sharedFormatter
        // Tue May 31 17:46:55 +0800 2011
        // 指定时间格式字符串
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        // 指定本地信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        // 将字符串转成 NSDate
        let result = dt.dateFromString(string)
        // 返回结果
        return result
    }
    
    /// 返回新浪微博的时间字符串
    var sinaDateDescription: String? {
        let dt = MQDateFormatter.sharedFormatter
        
        // 取到当前的日历对象
        let calendar = NSCalendar.currentCalendar()
        // 当前时间
        let currentDate = NSDate()
        
        if isDateInThisYear(self) {
            // 是否是今天
            if calendar.isDateInToday(self) {
                // 拿着当前的时间，减去微博的时间，如果小于60秒，就代表1分钟之内
                let result = currentDate.timeIntervalSinceDate(self)
                
                if result < 60 {
                    return "刚刚"
                }else if result < 60 * 60 {
                    return "\(Int(result / 60))分钟前"
                }else{
                    return "\(Int(result / 60 / 60))小时前"
                }
            }else if calendar.isDateInYesterday(self) {
                dt.dateFormat = "昨天 HH:mm"
            }else {
                dt.dateFormat = "MM-dd HH:mm"
            }
        }else {
            // 2014-10-15 08:19
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        }
        return  dt.stringFromDate(self)
    }
    

    
    func isDateInThisYear(date:NSDate) -> Bool{
        
        let dt = MQDateFormatter.sharedFormatter
        dt.locale = NSLocale(localeIdentifier: "en_US")
        dt.dateFormat = "yyyy"
        //当前时间
        let currentDate = NSDate()
        let currentDateStr = dt.stringFromDate(currentDate)
        
        //获取到的时间
        let dateStr = dt.stringFromDate(date)
        
        //对比
        return (currentDateStr as NSString).isEqualToString(dateStr)
    }
}
